﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace Tracking.Data.Model.Interfaces
{
    public interface ITrackingRepository
    {
        Tracking.Data.Shipment GetInfo(string trackingNumber);

        IQueryable<Shipment> Get(out int total, int index = 0, int size = 50, Expression<Func<Shipment, bool>> filter = null, string orderBy = null);

        void Create(Shipment shipment);

        void Update(Shipment shipment);

        void Delete(int id);

        Shipment GetById(int id);

        Shipment GetByTrackingNumber(string trackingNr);
    }
}
